1. Technical Field
The present disclosure relates generally to processing queries in a database, and more particularly to, processing queries that include column-oriented tasks in a row-partitioned database.
2. Related Art
A database is a collection of stored data that is logically related and that is accessible by one or more users or applications. A popular type of database is the relational database management system (RDBMS), which includes relational tables, also referred to as relations, made up of rows and columns (also referred to as tuples and attributes). Each row represents an occurrence of an entity defined by a table, with an entity being a person, place, thing, or other object about which the table contains information.
One of the goals of a database management system is to optimize the performance of queries for access and manipulation of data stored in the database. Given a target environment, an optimal query plan is selected, with the optimal query plan being the one with the lowest cost (e.g., response time) as determined by an optimizer. The response time is the amount of time it takes to complete the execution of a query on a given system.
In some RBDMSs, relational tables are stored by rows, known as a row-partitioning format. In such a system, queries may be received that require specific columns in the relational tables to be used in some capacity. However, these systems require that entire rows containing the rows of the specific columns be processed in order to carry out the column-related tasks. Processing the rows in such a manner may also require that each task related to a specific column be read and processed serially from the query causing not only a reduction in response time due to performing column-related tasks to row-partitioned data, but also due to the multiple reads involved.